package com.goodjia.phase1module4;

import java.io.*;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

public class IOStreamabcTest {

    public static void main(String[] args) {

        BufferedReader br = null;
        PrintStream ps = null;
        try {
            // 构造方法需要的是Reader类型的引用，但Reader类是个抽象类，实参只能传递子类的对象 字符流
            // System.in代表键盘输入， 是InputStream类型的 字节流
            br = new BufferedReader(new InputStreamReader(System.in));
            ps = new PrintStream(new FileOutputStream("/Users/Rory/Desktop/BigDataLearnGround/JavaSE/module4/Homework/abc.txt"));
            // lst集合用来存放从控制台输入的字符串方便最后按字典倒序排序
            List<String> lst = new ArrayList<String>();
            while (true) {
                System.out.println("请输入一个字符串：");
                String str = br.readLine();
                if ("end".equals(str)) {
                    System.out.println("输出结束");
                    // 用Collections工具类对lst进行排序后再倒置
                    Collections.sort(lst);
                    Collections.reverse(lst);
                    // 遍历lst集合将每个字符串按顺序输出到abc.txt文件中
                    for (String s : lst) {
                        ps.println(s);
                    }
                    break;
                }
                lst.add(str);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (null != ps) {
                ps.close();
            }
            if (null != br) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
